// 1.generator的核心入口文件

// 2.导入yeoman-generator模块
const Generator = require('yeoman-generator')

module.exports = class extends Generator {
    prompting () {
        // 3. 使用prompting方法完成与用户的命令交互。例：项目名称？版本号？项目描述等
        return this.prompt([
            {
                type: 'input',
                name: 'name',
                message: 'Your project name？',
                default: this.appname
            },
            {
                type: 'input',
                name: 'version',
                message: 'Your project version？',
                default: '1.0.0'
            },
            {
                type: 'input',
                name: 'des',
                message: 'Your project description',
                default: ''
            }
        ])
        .then(answers => {
            this.answers = answers
        })
    }
    writing () {
        // 项目模板结构
        const templates = [
            'uni.scss',
            'pages.json',
            'manifest.json',
            'main.js',
            'App.vue',
            'static/logo.png',
            'pages/index/index.vue'
        ]
        // 4.使用fl模块的copyTpl方法把获取到的模板文件写入到项目中
        // 在模板文件中可以根据模板字符串<%= name %> 的方式获取到命令交互时用户输入的信息
        templates.forEach(item => {
            this.fs.copyTpl(
                this.templatePath(item),
                this.destinationPath(item),
                this.answers
            )
        })
    }
}